import VuiClipboardDataItem from './data-item';

/*
 *
 * @Author: Jevon
 * @Date: 2021-12-16 10:56:53
 */
const VuiClipboardNavigatorUtils = (function() {
  /**
   * 检查是否支持navigator.clipboard
   * @param {*}
   * @return {*}
   */
  function check() {
    return navigator.clipboard != null;
  }
  /**
   * 向剪切板写入文本
   * @param {*} data
   * @return {*}
   */
  function writeText(data) {
    return navigator.clipboard.writeText(data);
  }
  /**
   * 读取剪切板中的文本
   * @param {*}
   * @return {*}
   */
  function readText() {
    return navigator.clipboard.readText();
  }
  /**
   * 向剪切板写入内容
   *
   * @param {VuiClipboardDataItem} item
   * @return {*}
   */
  function write(item) {
    return navigator.clipboard.write(item.toClipboardItem());
  }
  /**
   * 根据类型读取剪切板
   * @param {*} format
   * @return {*}
   */
  function read(format) {
    return navigator.clipboard.read().then(clipboardItems => {
      let result = null;
      for (const clipboardItem of clipboardItems) {
        result = clipboardItem.getType(format);
        if (result) break;
      }
      return result;
    });
  }

  return {
    check,
    writeText,
    readText,
    write,
    read
  };
})();
export default VuiClipboardNavigatorUtils;
